package farmers.other;

import org.junit.Test;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateTest {
	static String [] WEEK_1 = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
	static String [] WEEK_2 = {"周日","周一","周二","周三","周四","周五","周六"};


	@Test
	public void 日期输出1() throws Exception {
		//	=================== 2023-10-23	星期一 ===================
		//	=================== 2023-10-24	星期二 ===================
		//	=================== 2023-10-25	星期三 ===================

		Calendar calendar = Calendar.getInstance();
		calendar.setTime(new Date());

		// 计算两个日期的天数
		SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
		String dbtime1 = "2023-12-31";  //结束日期
		String dbtime2 = format2.format(new Date());  //开始日期
		//算两个日期间隔多少天
		Date date1 = format2.parse(dbtime1);
		Date date2 = format2.parse(dbtime2);
		int dayNum = (int) ((date1.getTime() - date2.getTime()) / (1000*3600*24));


		for (int i = 0; i < dayNum; i++) {
			calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1
			String xingqi = WEEK_1[calendar.get(calendar.DAY_OF_WEEK)-1];
			System.out.println("=================== " + format2.format(calendar.getTime()) + "\t" + xingqi + " ===================");
			System.out.println();
			System.out.println();
			System.out.println();
			System.out.println();
			System.out.println();
			System.out.println();
		}

	}

	// 2023年07月12日（周三）
	@Test
	public void 日期输出2() throws Exception {
//		#2023/10/23 周一
//		#2023/10/24 周二
//		#2023/10/25 周三

		/*





#2023/11/27 周一

#2023/11/28 周二

#2023/11/29 周三

#2023/11/30 周四

#2023/12/01 周五

#2023/12/02 周六

#2023/12/03 周日

#2023/12/04 周一

#2023/12/05 周二

#2023/12/06 周三

#2023/12/07 周四

#2023/12/08 周五

#2023/12/09 周六

#2023/12/10 周日

#2023/12/11 周一

#2023/12/12 周二

#2023/12/13 周三

#2023/12/14 周四

#2023/12/15 周五

#2023/12/16 周六

#2023/12/17 周日

#2023/12/18 周一

#2023/12/19 周二

#2023/12/20 周三

#2023/12/21 周四

#2023/12/22 周五

#2023/12/23 周六

#2023/12/24 周日

#2023/12/25 周一

#2023/12/26 周二

#2023/12/27 周三

#2023/12/28 周四

#2023/12/29 周五

#2023/12/30 周六

#2023/12/31 周日

		 */

		Calendar calendar = Calendar.getInstance();
		calendar.setTime(new Date());

		// 计算两个日期的天数
		SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日");
		String dbtime1 = "2023年12月31日";  //结束日期
		String dbtime2 = format2.format(new Date());  //开始日期
		//算两个日期间隔多少天
		Date date1 = format2.parse(dbtime1);
		Date date2 = format2.parse(dbtime2);
		int dayNum = (int) ((date1.getTime() - date2.getTime()) / (1000*3600*24));

		for (int i = 0; i < dayNum; i++) {
			calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1
			String xingqi = WEEK_2[calendar.get(calendar.DAY_OF_WEEK)-1];
			System.out.println("#" + new SimpleDateFormat("yyyy/MM/dd").format(calendar.getTime()) + " " + xingqi);
			System.out.println();
		}

	}

	@Test
	public void 计算天数() throws Exception {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(new Date());
		
		// 计算两个日期的天数
		SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
		String dbtime1 = "2023-12-11";  //第一个日期
		String dbtime2 = format2.format(new Date());  //第二个日期
		//算两个日期间隔多少天
		Date date1 = format2.parse(dbtime1);
		Date date2 = format2.parse(dbtime2);
		int dayNum = (int) ((date1.getTime() - date2.getTime()) / (1000*3600*24));
		System.out.println(dbtime2 + " ~ " + dbtime1 + " 相差" + dayNum + "天");

		int zhoumo = 0;
		int gongzuori = 0;

		for (int i = 0; i < dayNum; i++) {
			 calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1
			 
			 if(WEEK_1[calendar.get(calendar.DAY_OF_WEEK)-1].equals("星期六") || WEEK_1[calendar.get(calendar.DAY_OF_WEEK)-1].equals("星期日")) {
				 zhoumo++;
			 }else {
				 gongzuori++;
			 }
		}
		
		System.out.println("工作日还剩下" + gongzuori + "天");
		System.out.println("双休日还剩下" + zhoumo + "天");
	}
}
